Erre a kérdésre már itt vannak válaszok: Fordítson egy karakterláncot Pythonban (29 válasz) 4 éve zárva. Megpróbálok megfordítani egy karakterláncot, és az alábbi kódot használom, de a kapott fordított lista értéke Nincs. A kód: str_a = 'Ez keverés' rev_word = str_a.split () rev_word = rev_word.reverse () rev_word = "". csatlakozzon (rev_word) Visszaadja a TypeError szót. Miért?
2021-01-15 08:10:33
A .reverse () értéke Nincs. Ezért nem szabad hozzárendelni egy változóhoz. Ezt használja inkább: stra = 'Ez egy karakterlánc' revword = stra.split () revword.reverse () revword = "". csatlakozzon (revword) Az IDEOne kódot futtattam neked, így láthatod a kimenetet. (Vegye figyelembe azt is, hogy a kimenet stringaisThis; érdemes használni a '' .join (revword) szóközt.) Vegye figyelembe azt is, hogy a megadott módszer csak a szavakat fordítja meg, a szöveget nem. A @ ron.rothman olyan linket adott, amely részletesen leírja, hogyan lehet a karakterláncot teljes egészében megfordítani. | Ez a személyes kedvenc módom a karakterlánc megfordítására: stra = "Ez egy karakterlánc" revword = stra [:: - 1] print (revword) # "gnirts a si sihT vagy ha meg akarja változtatni a szórendet: revword = "" .csatlakozz (stra.split () [:: - 1]) print (revword) # "karakterlánc a ez" :) | Különböző megfordítások egy húron: instring = 'Ez egy karakterlánc' fordított húr = utasít [:: - 1] nyomtatás fordított húr # gnirts a si sihT wordsreversed = "" .join (szó [:: - 1] szó az utasításhoz.split ()) szavak nyomtatása fordítva # sihT si a gnirts revwordorder = "" .join (szóról szóra a instring.split () [:: - 1]) a revwordorder # string karakter nyomtatása ez revwordandorder = "" .join (szó [:: - 1] szó az utasításhoz.split () [:: - 1]) nyomtat revwordandorder # gnirts a si sihT | Jövőbeni felhasználás céljából, ha egy objektumnak van egy olyan módszere, mint a [] .reverse (), akkor általában végrehajtja ezt a műveletet az objektumon (azaz a lista rendezve van, és nem ad vissza semmit, nincs), ellentétben a beépített függvényekkel, például rendezve, amelyek műveletet hajtanak végre egy objektumot, és visszaad egy értéket (azaz a rendezett listát) | >>> s = 'ez egy karakterlánc' >>> s [:: - 1] „gnirts a si siht” >>> '' .csatlakozzon (megfordítva) „gnirts a si siht” | A for ciklus a sztringet végétől (utolsó betű) az elejétől (első betű) iterálja >>> s = 'Ezt te is kipróbálhatod:]' >>> rev = " >>> i tartományban (len (s) - 1, -1, -1): ... rev + = s [i] >>> rev ']: oot siht yrt nac uoY' | Megjegyzések és egyéb válaszok alapján: str_a = 'ez egy karakterlánc' rev_word = "" .join (megfordítva (str_a.split ())) A módszerláncolás végül is működik a Pythonban ... | A lista megfordítása többféle módon is történhet. Amint azt az előző válaszokban említettük, kettő nagyon kiemelkedő, az egyik fordított (), kettő pedig szeletelő funkcióval rendelkezik. Néhány betekintést nyújtok, melyiket érdemes előnyben részesítenünk. Mindig a reverse () függvényt kell használnunk a Python-lista megfordításához. Két ok, egy helybeni megfordítás és kettő gyorsabb, mint a másik. Van néhány számom, amely alátámasztja válaszomat, [15] -ben: len (l) Ki [15]: 1000 [16] -ban:% timeit -n1 l.reverse () 1 hurok, legjobb 3: 7,87 µs hurkonként [17] -ban:% timeit -n1 l [:: - 1] 1 hurok, legjobb 3: 10 µs hurkonként 1000 egész lista esetén a reverse () függvény jobban teljesített a szeleteléshez képest. | Nem a keresett válasz? Böngésszen a python címkével ellátott többi kérdésben, vagy tegye fel a saját kérdését.